package com.hsjk.szwj.module.train.service;

import com.hsjk.szwj.framework.common.pojo.PageResult;
import com.hsjk.szwj.module.train.controller.admin.vo.AdminCourseVideoCreateReqVO;
import com.hsjk.szwj.module.train.controller.admin.vo.AdminCourseVideoDetailRespVO;
import com.hsjk.szwj.module.train.controller.admin.vo.AdminCourseVideoPageReqVO;
import com.hsjk.szwj.module.train.controller.admin.vo.AdminCourseVideoPageRespVO;
import com.hsjk.szwj.module.train.controller.admin.vo.AdminCourseVideoPageSearchReqVO;
import com.hsjk.szwj.module.train.controller.admin.vo.AdminCourseVideoPageSearchRespVO;
import com.hsjk.szwj.module.train.controller.admin.vo.AdminCourseVideoUpdateReqVO;

/**
 * @author chenjiawei
 * @desc
 * @Date 2023/10/28 18:25
 **/
public interface ICourseVideoService {
    /**
     * 分页获取课程视频列表
     *
     * @param reqVO
     * @return com.hsjk.szwj.framework.common.pojo.PageResult<com.hsjk.szwj.module.train.controller.admin.vo.AdminCourseVideoPageRespVO>
     * @author chenjiawei
     * @date 2023/10/28 8:27 PM
     **/
    PageResult<AdminCourseVideoPageRespVO> getCourseVideoPage(AdminCourseVideoPageReqVO reqVO);
    /**
     * 课程视频分页查询
     *
     * @author chenjiawei
     * @date 2023/10/28 9:52 PM
     * @param reqVO
     * @return com.hsjk.szwj.framework.common.pojo.PageResult<com.hsjk.szwj.module.train.controller.admin.vo.AdminCourseVideoPageSearchRespVO>
     **/
    PageResult<AdminCourseVideoPageSearchRespVO> getCourseVideoSearchPage(AdminCourseVideoPageSearchReqVO reqVO);

    /**
     * 获取课程视频详情
     *
     * @param id
     * @return com.hsjk.szwj.module.train.controller.admin.vo.AdminCourseVideoDetailRespVO
     * @author chenjiawei
     * @date 2023/10/28 9:30 PM
     **/
    AdminCourseVideoDetailRespVO getCourseVideoDetail(Long id);

    /**
     * 创建课程视频
     *
     * @param reqVO
     * @return java.lang.Boolean
     * @author chenjiawei
     * @date 2023/10/28 9:36 PM
     **/
    Boolean createCourseVideo(AdminCourseVideoCreateReqVO reqVO);

    /**
     * 更新课程视频
     *
     * @param reqVO
     * @return java.lang.Boolean
     * @author chenjiawei
     * @date 2023/10/28 9:38 PM
     **/
    Boolean updateCourseVideo(AdminCourseVideoUpdateReqVO reqVO);

    /**
     * 删除课程视频
     *
     * @param id
     * @return int
     * @author chenjiawei
     * @date 2023/10/28 4:23 PM
     **/
    Boolean deleteCourseVideo(Long id);
}
